package Question8_5; public class Question { public static void printPar(int l, int r, char[] str, int count) { if (l < 0 || r < l) return; // invalid state if (l == 0 && r == 0) { System.out.println(str); // found one, so print it } else { if (l > 0) { // try a left paren, if there are some available str[count] = '('; printPar(l - 1, r, str, count + 1); } if (r > l) { // try a right paren, if there�s a matching left str[count] = ')'; printPar(l, r - 1, str, count + 1); } } } public static void printPar(int count) { char[] str = new char[count*2]; printPar(count, count, str, 0); } public static void main(String[] args) { printPar(3); } }